home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 11
/
FM Towns Free Software Collection 11.iso
/
t_os
/
data
/
dora
/
doraloop.plp
< prev
next >
Wrap
Text File
|
1995-08-09
|
25KB
|
816 lines
/* 端末属性を設定する */
%ESCset1{case (ESCon={No},
{Yes},{wait(Wtime2,{type({2|3\n})},{中止},{WaitMK;type({2|3\n})}
,{終了},{WaitMK;type({2|3\n})}
,{やめっ},{WaitMK;type({2|3\n})}
,{uit},{WaitMK;type({2|3\n})});
case (ID={}||ID={GUEST},
{No},{receive(LOG2|{アクセスdat\ゾクセイoff.DAT})})
},
{No},{wait(Wtime2,{type({2|1\n})},{中止},{WaitMK;type({2|1\n})}
,{終了},{WaitMK;type({2|1\n})}
,{やめっ},{WaitMK;type({2|1\n})}
,{uit},{WaitMK;type({2|1\n})});
case (ID={}||ID={GUEST},
{No},{receive(LOG2|{アクセスdat\ゾクセイ.DAT})})
});
};
%ESCset2{case (ESCon={No},
{Yes},{wait(Wtime2,,{中止},{WaitMK;type({3|3\n})}
,{終了},{WaitMK;type({3|3\n})}
,{やめっ},{WaitMK;type({3|3\n})}
,{uit},{WaitMK;type({3|3\n})});
case (ID={}||ID={GUEST},
{No},{receive(LOG2|{アクセスdat\ゾクセイoff.DAT})})
},
{No},{wait(Wtime2,,{中止},{WaitMK;type({3|1\n})}
,{終了},{WaitMK;type({3|1\n})}
,{やめっ},{WaitMK;type({3|1\n})}
,{uit},{WaitMK;type({3|1\n})});
case (ID={}||ID={GUEST},
{No},{receive(LOG2|{アクセスdat\ゾクセイ.DAT})})
});
};
%EDITset2{loop ({ type({2\n});
wait(Wtime2,,{CRのみの送信に設定},{im({Yes})}
,{CR/LFの送信に設定},{im({No})})
});
};
%MODEset1{wait(Wtime2,,{中止},{WaitMK;type({3|3\n})}
,{終了},{type({3|3\n})}
,{やめっ},{type({3|3\n})}
,{uit},{WaitMK;type({3|3\n})}
)};
%MODEset2{wait(Wtime2,,{中止},{WaitMK;type({4|3\n})}
,{終了},{type({3|3\n})}
,{やめっ},{type({3|3\n})}
,{uit},{WaitMK;type({4|3\n})}
)};
%MOREset1{wait(Wtime2,,{中止},{WaitMK;type({4|0\n})}
,{終了},{type({4|0\n})}
,{やめっ},{WaitMK;type({4|0\n})}
,{5 :モアスイッチ },{WaitMK;type({5|0\n});netTYPE:={Aoity}}
,{uit},
{
WaitMK;type({4|0\n});
wait (5,{type({4|0\n})},
{BEEPmode},{type({2\n});netTYPE:={Aoity};MOREset2}
);
})
};
%MOREset2{wait(Wtime2,,{中止},{WaitMK;type({5|0\n})}
,{終了},{type({4|0\n})}
,{やめっ},{WaitMK;type({4|0\n})}
,{uit},{WaitMK;type({5|0\n})}
)};
%GENGOset1{
wait (Wtime2,
,{中止},{WaitMK;type({5|2\n})}
,{終了},{type({5|2\n})}
,{やめっ},{WaitMK;type({5|2\n})}
,{Quit},{WaitMK;type({\n})}
,{quit},{WaitMK;type({5|2\n})}
);
loop ({
wait (3,{type({\n});im({Yes})}
,{uit},
{type({\n});
wait (3,,{ESC削除},{ZOKUend}
,{uit},{});
im({No})}
,{English},
{WaitMK;type({5|3\n}); /*SSS-NET対応*/
wait (3,,{RTBBS互換},{});
im({No})}
,{ESC削除},{ZOKUend}
,{値が大きすぎます},{ZOKUend});
});
};
%ZOKUend{ wait(1);case (ESCon={No},
{Yes},{type({3\n})},
{No},{type({1\n})});im({No})
};
%ZOKU{var netTYPE[6];
wait(3);type({\n});type({I|D\n});
mkdir2(LOG2|{アクセスdat});DOWNCHECK;
delfile(LOG2|{アクセスdat\ゾクセイ.DAT});
delfile(LOG2|{アクセスdat\ゾクセイoff.DAT});dispoff({No});
type({1\n});
loop ({
wait(5,{type({1\n});im({Yes})}
,{More},{type({\n});im({Yes})}
,{ベタエディタに},{WaitMK;type({1\n});im({Yes})}
,{標準型},{WaitMK;type({1\n});im({Yes})}
,{短縮型},{im({No})}
,{サポート},{im({No})}
,{ラインエディタに},{im({No})}
,{編集用エディタに},{im({No})}
,{CRのみの送信に設定},{WaitMK;type({1\n});im({Yes})}
,{1:ESC完全表示},{
case (ESCon={No},
{Yes},{WaitMK;type({1\n})},{No},{WaitMK;type({2\n})});
im({No})}
,{CR/LFの送信},{im({No})})
});
wait(Wtime1,, {属性を変更},{netTYPE:={normal}},
{変更するものを},{netTYPE:={normal}},
{項目を変更},{netTYPE:={normal}},
{4 :BEEP音モード},{netTYPE:={Aoity}},
{[32m5[m :[33mエディタ行番号},{netTYPE:={KTty}},
{5 :エディタ行番号},{netTYPE:={KTty}},
{[32m2[m :[33mラインフィード設定},{netTYPE:={JCty}},
{2 :ラインフィード設定},{netTYPE:={JCty}});
case (netTYPE,
{normal},
{
ESCset1;MODEset1;MOREset1;
case (netTYPE,
{normal},{GENGOset1});
},
{Aoity},{ESCset1;MODEset1;MOREset1},
{KTty},{ESCset1;MODEset1;MOREset1},
{JCty},{EDITset2;ESCset2;MODEset2;MOREset2}
);
type({\n});wait(3,{type({0\n})},{>},{type({0\n})});
case (ID={}||ID={GUEST},
{No},{DOWNSTOP;DOWNSTART},
{Yes},{CHeck:={No}})
};
/* 伝言板を見る & 書く */
%DENGON{
endWD:={//};footnote({伝言板を見ています});type({G\n});
loop ({
wait (3,{im({Yes})}
,{[N]},{type({N\n});wait(1);type({G\n});im({Yes})}
,{----------------------},{im({No})}
);
});
wait(Wtime2,,{[RET]},{endWD:={}},{伝言板},{},
{メッセージ},{},{でんごん},{},{Gather},{});
case (@filechk(UP2|{DENGO}),
{Yes},{WaitMKD;DOWNSTOP;wait(2);send(UP2|{DENGO});DOWNSTART});
WaitMK;type(endWD|{\n});delfile(UP2|{DENGO});
preRetM
};
/* メール削除処理 */
%DELsyori{
%comA{いないメールはあり};%comB{いたメールはあり};
%comC{いないメールはない};%comD{.LZH\n};%comE{.JPG\n};
%ckMail{var n[3]; n:=1;var N[3]; N:=@noline(Malchk);
loop ({ n:=n+1;
%a @getline(Malchk,n,1);
case (n>N,
{Yes},{im({No})},,
{
case (BINop={M},
{Yes},
{case (a={} || @exist(a,comD)={No}
&& @exist(a,comE)={No} &&
@getchar(a,41,1)<>{b} &&
@getchar(a,42,1)<>{b} &&
@getchar(a,41,1)<>{o} &&
@getchar(a,42,1)<>{o} &&
@getchar(a,41,1)<>{.} &&
@getchar(a,42,1)<>{.},
{Yes},{im({Yes})},,
{ckMail2;im({Yes})
})
},,
{case (a={},
{Yes},{im({Yes})},,
{ckMail2;im({Yes})
})
});
});
});
};
%ckMail2{
case (@getchar(a,41,1)={o}||@getchar(a,42,1)={o}||
@getchar(a,46,1)={o}||@getchar(a,24,1)={o},
{Yes},
{
case (DelML={all} || DelML={other}
&&@strip(@head(@getchar(a,6,9),{ }))<>ID,
{Yes},
{type(@getchar(a,2,3)|{|K|Y\n});
wait (Wtime2,,
{Protocol},{type({Q\n})},
{何番を削除しますか},{type({\n})},
{何番を消しちゃうの},{type({\n})},
{uit},{type({0\n});footnote({メールNo.}
|@getchar(a,2,3)|{番を削除しました})},
{削除しました},{footnote({メールNo.}
|@getchar(a,2,3)|{番を削除しました})}
);
im({Yes})},,
{footnote({メール処理実行中});
im({Yes})});
},
{No},
{case(@strip(@head(@getchar(a,24,9),{ }))=ID ||
@strip(@head(@getchar(a,15,9),{ }))=ID,
{Yes},
{footnote({未読メールを確認しました});
type(@getchar(a,2,3)|{|K|Y\n});
wait(Wtime2,
,{何番を削除しますか},{type({\n})}
,{uit},{type({0\n});footnote({メールNo.}|
@getchar(a,2,3)|{番を削除しましス})}
,{削除しました},{footnote({メールNo.}|
@getchar(a,2,3)|{番を削除しました})}
);im({Yes})
},
{No},{
footnote({メール処理実行中});
im({Yes})
})
})
};
%Malchk @read(TEMP2|{_maltxt.tmp});
case (@exist(Malchk,comA)||@exist(Malchk,comB)||@exist(Malchk,comC)
,
{Yes},{footnote({メールは存在しません})},
{No},{footnote({メールの読み込み処理を開始します});ckMail});
WaitMKD;type({0\n});preRetM
};
/* メールを読む */
%typeML {
loop ({
wait(3,{type({\n});im({Yes})}
,{?,E,O},{WaitMK;type({ML\n});im({No})}
,{してねっ☆},{WaitMK;type({ML\n});im({No})}
,{ヘルプ 表示},{WaitMK;type({ML\n});WaitMK;im({No})}
,{メイン},{WaitMK;type({ML\n});WaitMK;im({No})}
,{メイン},{WaitMK;type({ML\n});WaitMK;im({No})}
,{?,@,O},{WaitMK;type({ML\n});im({No})}
,{,?,O},{WaitMK;type({ML\n});im({No})}
,{使用できません},{WaitMK;type({0\n});im({Yes})}
,{,Q},{WaitMK;type({Q\n});im({Yes})}
,{,?,P,0},{WaitMK;type({0\n});im({Yes})}
,{,?,0},{WaitMK;type({0\n});im({Yes})})
});
};
%NEWMAILL{
footnote({メール処理開始});
case(MAILDEL={Yes},
{Yes},{ DOWNCHECK;type({\n});typeML;
delfile(TEMP2|{_maltxt.tmp});
case (@getchar(ID,1,3),
{YAG},{wait(3,{type({R\n})},{R:受信},{type({R\n})})},
{DIG},{wait(3,{type({T|L\n})},{Textmail},{type({T|L\n})});
});
type({\n});wait(Wtime2,,{姫},,{------------},);
receive(TEMP2|{_maltxt.tmp});
wait (Wtime2,
,{ヘルプ 表示},
,{,?,P,0},
,{,?,0},);DOWNSTOP;
case (ESCon={No},
{No}, {dispoff(!DEBUG);command({escctr -d}|TEMP2|{ -K}|
TEMP2|{ }|TEMP2|{_maltxt.tmp});dispoff({No})});
DOWNSTART;
case (@filechk(TEMP2|{_maltxt.tmp})={},
{Yes},{footnote({メールデータの読み込みに失敗しました})},
{No},{footnote({既読メールの削除処理をします});DELsyori}
);
}
,{No},{WaitMK;typeML;
wait (3,{type({\n})}
,{[RET]},{WaitMK;type({\n})});
%mailOP @case (BINop,
{Z},{im({F|F|0})},
,{im({T|F|0})});
case (@getchar(ID,1,3),
{YAG},{wait(3,{type({R\n})},{R:受信},{type({R\n})})},
{DIG},{wait(3,{type({T\n})},{Textmail},{type({T\n})})}
);
wait(Wtime2,{type(mailOP|{\n})},{MAIL},{WaitMK;type(mailOP|{\n})});
});
loop ({wait (3,{im({Yes})}
,{,?,0},{WaitMK;type({0\n});im({Yes})}/*葵ネット対応*/
,{ログアウト},{type({N\n});im({Yes})}/*葵ネット対応*/
,{電報攻撃},{WaitMK;type({\n});im({Yes})}/*paoネット対応*/
,{0:quit},{WaitMK;type({0|0\n});im({No})}
,{0[m:[32mquit},{WaitMK;type({0|0\n});im({No})}
,{,?,P,0},{WaitMK;type({0|Q\n});im({No})}
,{0,Q},{WaitMK;type({Q\n});im({No})}
,{Q:Quit},{WaitMK;type({Q\n});im({No})}
,{,?,@,O},{im({No})}
,{,?,O},{im({No})}
,{メイン},{im({No})}
,{メイン},{im({No})}
,{[36mMAIN},{im({No})}
,{= MAIN =},{im({No})}
,{\nMAIN },{im({No})})
});wait(3);
};
/* 会員名簿を取得する(ID検索用データ) */
%ACT {footnote({会員名簿を調べます。});
wait(1);type({U\n});
loop ({
wait (3,{im({Yes})}
,{A,D,M,},{WaitMK;type({M\n});im({Yes})}
,{めのIDは},
{
var ProFile[64];
case (@nochar(MEMBER),
0,{ProFile:=LOG2|{PROFILE\member.lst}},
3,{ProFile:=MEMBER},
,{ProFile:=MEMBER}
);
DOWNCHECK;
footnote({会員名簿を取得します。});
mkdir2(@body(ProFile,,{\}));delfile(ProFile);
WaitMK;type({\n});
receive(ProFile);wait(5);
loop ({
wait ({5},{type({\n});im({Yes})}
,{,?,P,0},
{WaitMK;type({0|Q\n});im({Yes})}
,{,?,0},
{WaitMK;type({0|Q\n});im({Yes})}
,{\nMAIN},{im({No})}
,{36mMAIN},{im({No})}
,{,E,O},{im({No})}
,{,@,O},{im({No})}
,{,?,O},{im({No})}
,{メイン},{im({No})}
,{:メイン},{im({No})}
,{36mメイン},{im({No})}
,{\nメイン},{im({No})})
});
WaitMK;DOWNSTOP;DOWNSTART;im({No})
});
})
};
/* アクセスユーザーの確認 & 自動トーク処理 */
%Who{
/* 自動トーク前処理 */
%preTalk{
var WhoRes[1200];
WhoRes:=@read(TEMP2|{_whotext.tmp});
%ckWho{[IDNo,CMNo]
var n[2]; n:={0};
%p @case(@getchar(ID,1,3)={YAG},{Yes},{im({2})},{No},{im({})});
loop ({ n:=n+1;
%a @getline(WhoRes,n,1);
case (a={},
{Yes},{im({No})},,
{case (@strip(@getchar(a,6-p,8))
=@strip(@getchar(IDNo,1,8)),
{Yes},
{footnote(IDNo|{を確認しました});
sendTalk(@getchar(a,4-p,1),@getchar(a,15-p,8),CMNo)
},
{No},{footnote({取得データの}|n|{行目を「}|
IDNo|{」と比較チェックします});im({Yes})}
)
});
});
};
case(TalkID1={},{No},{ckWho(TalkID1,CMt1)});
case(TalkID2={},{No},{ckWho(TalkID2,CMt2)});
case(TalkID3={},{No},{ckWho(TalkID3,CMt3)});
case(TalkID4={},{No},{ckWho(TalkID4,CMt4)});
case(TalkID5={},{No},{ckWho(TalkID5,CMt5)});
case(TalkID6={},{No},{ckWho(TalkID6,CMt6)});
case(TalkID7={},{No},{ckWho(TalkID7,CMt7)});
case(TalkID8={},{No},{ckWho(TalkID8,CMt8)});
case(TalkID9={},{No},{ckWho(TalkID9,CMt9)});
case(TalkID10={},{No},{ckWho(TalkID10,CMt10)});
case(TalkID11={},{No},{ckWho(TalkID11,CMt11)});
case(TalkID12={},{No},{ckWho(TalkID12,CMt12)});
case(TalkID13={},{No},{ckWho(TalkID13,CMt13)});
case(TalkID14={},{No},{ckWho(TalkID14,CMt14)});
case(TalkID15={},{No},{ckWho(TalkID15,CMt15)});
case(TalkID16={},{No},{ckWho(TalkID16,CMt16)});
case(TalkID17={},{No},{ckWho(TalkID17,CMt17)});
case(TalkID18={},{No},{ckWho(TalkID18,CMt18)});
case(TalkID19={},{No},{ckWho(TalkID19,CMt19)});
case(TalkID20={},{No},{ckWho(TalkID20,CMt20)});
};
/* 自動トーク処理 */
%sendTalk{[chNo,HanDle,DenPou]
sendtype({Ch/1});wait(1);type({T\n});
loop ({
wait (3,{im({Yes})},
{チャンネルを指定して下さい}
,{WaitMK;type(chNo|{\n});im({Yes})},
{書き込み中なので送れない}
,{im({No})},
{トークモードに入りました。}
,{
%nowhh @getchar(@daylong,16,2);
case (4>=nowhh || nowhh>18,
{Yes},{type({今晩は、}|HanDle|{さん!\n})},
{No},{
case (10>=nowhh && nowhh>4,
{Yes},{type({お早ようございます、}
|HanDle|{さん!\n})},
{No},{case (18>=nowhh && nowhh>10,
{Yes},{type({今日は、}
|HanDle|{さん!\n})}
);
});
});wait(1);
case (HanDLe={},{No},{type(HanDLe|{です!\n})},,);
wait(1);type(DenPou|{\n});type({//\n});im({Yes})
},
{トークモードを終了しました。},{im({Yes})},
{,?,P,0},{im({No})},
{,?,0},{im({No})},
{メイン},{im({No})},
{\n= MAIN =},{im({No})},
{[36m= MAIN =},{im({No})},
{},{im({No})},
{メイン},{im({No})},
{メイン},{im({No})},
{[36mMAIN},{im({No})},
{\nMAIN},{im({No})}
)
});
};
DOWNCHECK;delfile(TEMP2|{_whotext.tmp});receive(TEMP2|{_whotext.tmp});
WaitMKD;type({W\n});
footnote({現在}|NET|{-NETにアクセス中のユーザーを確認します});
preRetM;DOWNSTART;
case (CMt1={}&&CMt2={}&&CMt3={}&&CMt4={}&&CMt5={}&&CMt6={}&&
CMt7={}&&CMt8={}&&CMt9={}&&CMt10={}&&CMt11={}&&CMt12={}&&
CMt13={}&&CMt14={}&&CMt15={}&&CMt16={}&&
CMt17={}&&CMt18={}&&CMt19={}&&CMt20={},
{Yes},{footnote({自動トーク処理は未設定です})},
{No},
{
case (ESCon={No},
{No},
{dispoff(!DEBUG);command(CDIR2|{escctr -d}|TEMP2|
{ -K}|TEMP2|{ }|TEMP2|{_whotext.tmp});dispoff({No})
},,
);
case (@filechk(TEMP2|{_whotext.tmp})={},
{Yes},
{footnote({アクセスデータの読み込みに失敗しました})},
{No},{footnote({自動トーク処理をします});preTalk}
)
});wait(3);
};
/* 自動トーク反撃処理 */
%BENONres{
};
/*ログ記録を見る処理*/
%logDATA{footnote({ログ記録を見に行きます});WaitMK;type({L\n});
loop ({
wait (3,{im({Yes})}
,{,?,E,O},{im({No})}
,{,?,@,O},{im({No})}
,{してねっ☆},{im({No})}
,{36mメイン},{im({No})}
,{:メイン},{im({No})}
,{\nメイン},{im({No})}
,{メイン},{im({No})}
,{,?,O},{im({No})}
,{[36mMAIN},{im({No})}
,{\nMAIN },{im({No})}
)
})
};
/* NETの閲覧可能ボードを見る処理 */
%BALL{ footnote({NETの閲覧可能ボードを見ます。});
mkdir2(LOG2|{board});
DOWNCHECK;delfile(LOG2|{board\title.txt});
WaitMK;type({B|A\n});
wait(Wtime2,
,{ボード名},{receive(LOG2|{board\title.txt})}
,{ボードタイトル},{receive(LOG2|{board\title.txt})}
,{Board title},{receive(LOG2|{board\title.txt})});
wait (Wtime2,{WaitMK;type({Q\n})}
,{ヘルプ 表示},{WaitMK;type({0\n})}
,{,Q},{WaitMK;type({Q\n})});
DOWNSTOP;wait(2);DOWNSTART
};
/*ファイル ボードのNews検索 */
%LIBnew{
footnote({ファイル ボードのNews検索実行します});
mkdir2(LOG2|{fnews});
type({FN\n});DOWNCHECK;
receive(LOG2|{fnews\fb}|DAY2|{.new});
loop ({
wait (3,{im({Yes})}
,{[RET]},{WaitMK;type({\n});im({Yes})}
,{時刻指定},{WaitMK;type({\n});im({Yes})}
,{日付指定},{WaitMK;type({\n});im({Yes})}
,{探すの終わったよ},
{WaitMKB;type({Q\n});im({No})}
,{検索が終了しました},
{WaitFNEW;im({No})}
,{,Q},{WaitMK;type({Q\n});im({No})}
,{できません},{WaitMK;im({No})}
,{出来ません},{WaitMK;im({No})}
)
});DOWNSTOP;DOWNSTART;preRetM
};
/* ファイルボーッドを見る前処理 */
%DATALIB{[lib]
case (lib={LIB}||lib={lib},
{No}, {LIBLIST(lib)},{Yes},{})};
/* CUGファイルボーッドを見る前処理 */
%sDATALIB{[lib]
case (lib={LIB}||lib={lib}||lib={},
{No}, {sLIBLIST(lib)},{Yes},{});
};
/* データライブラリ一覧を見る */
%fDATALIB{mkdir2(LOG2|{DATALIB});
DOWNCHECK;delfile(LOG2|{DATALIB\}|NET|{DLIB.lst});
WaitMK;type({\n});
wait(Wtime2,,{入力してねっ☆},{WaitMK;type({F|A\n})}
,{K,N,Z,_,@,Q,A,B,C,},{WaitMK;type({F|M\n})}
,{K,N,Z,_,@,A,B,C,E,},{WaitMK;type({F|M\n})}
,{K,N,_,A,B,C,D,},{WaitMK;type({F|M\n})}
,{ヘルプ 表示},{WaitMK;type({F|A\n})}
,{B,C,_,E},{WaitMK;type({F|A\n})}/*SSS-NET*/
,{B,C,D,E},{WaitMK;type({F|A\n})});
receive(LOG2|{DATALIB\}|NET|{DLIB.lst});
wait (Wtime5,{WaitMK;type({Q\n})}
,{ヘルプ 表示},{WaitMK;type({Q\n})}
,{利用できません},{WaitMK;type({Q\n})}
,{,Q},{WaitMK;type({Q\n})});
DOWNSTOP;wait(2);DOWNSTART};
/* ファイル ボードの最新登録状況を見る処理 */
%LIBLIST{ [lib]
footnote({LIBの最新登録状況を見ます});liblist:=lib;
loop ({
mkdir2(LOG2|{DATALIB});
delfile(LOG2|{DATALIB\#}|@head(liblist,{,})|{DLIB.DAT});
WaitMK;type({F#}|@head(liblist,{,})|{\n});
LIBprom1(@head(liblist,{,}),NET);
liblist:=@body(liblist,{,});
case (liblist={},
{Yes},{im({No})},
{No},{im({Yes})}
);
});
DOWNSTART
};
/* CUGライブラリーの最新登録状況を見る処理 */
%sLIBLIST{ [lib]
footnote({LIBの最新登録状況を見ます});liblist:=lib;
loop ({
mkdir2(LOG2|{DATALIB});
delfile(LOG2|{DATALIB\#}|@head(liblist,{,})|{DLIB.DAT});
WaitMK;
type({F#}|@head(liblist,{,})|{|}|Spasswd|{\n});
LIBprom1(@head(liblist,{,}),Spasswd);
liblist:=@body(liblist,{,});
case (liblist={},
{Yes},{im({No})},
{No},{im({Yes})}
);
});
DOWNSTART
};
/************************************************************************
* ボード処理の定義 *
* Forum({ネット名},{ボード番号リスト},{ライブラリ番号リスト}) *
* ボード番号リストで指定された会議室の未読を読み *
* ライブラリ番号リストが指定されていればデータライブラリをちらっと見る *
*************************************************************************/
/*未読ポインタの指定処理(ミンキームーンNET)*/
%UREDpoint{
case (NET={MMN}||NET={mmn},
{Yes},
{type({^\n})
})
};
/****** ボート未読共通処理 *******/
%BODprom1{
%time1 @linetime;
%TimeCHK{
%time2 @linetime-time1;
case (DEBUG,{Yes},
{display({タイムチェック実行 time=}|time2|{です\n});
});
wait(1);
case (time2>1/6,
{No},{type({\n});im({Yes})},
{Yes},{type({\n});im({No});
display({\n次の処理に移ります。 time=}|time2|{です\n})
});
};
loop ({
wait (5,{im({Yes})}
,{システムがダウンしました},
{AbortOff({\nホストのシステムがダウンしちゃった~\n});
im({No})}
,{\n= MAIN =},{TimeCHK}
,{36m= MAIN =},{TimeCHK}
,{36mメイン},{TimeCHK}
,{\nメイン},{TimeCHK}
,{:メイン},{TimeCHK}
,{メイン},{TimeCHK}
,{[36mMAIN},{TimeCHK}
,{\nMAIN },{TimeCHK}
,{ボードのグループでは},{im({No})}
,{ボードが見つか},{WaitMK;type({N|Q\n});im({Yes})}
,{書式が違います},{im({Yes})}
,{ボードには入れ},
{WaitMK;type({Q\n});
loop ({
wait (3,{im({Yes})}
,{[N]},{type({N\n});im({Yes})}
,{YY/MM/DD},
{WaitMK;type(mPOINT|{\n});im({Yes})}
,{時刻指定},
{WaitMK;type(mPOINT|{\n});im({Yes})}
,{日付指定},
{WaitMK;type(mPOINT|{\n});im({Yes})}
,{,Q},{type({Q\n});im({No})}
,{0:中止},{type({0\n});im({No})}
);
});
im({Yes})
}
,{パスワードが違},{im({Yes})}
,{[N]},{WaitMK;type({N\n});im({Yes})}
,{次ね},{WaitMK;type({F\n});im({Yes})}
,{[RET]:},{WaitMK;type({\n});im({Yes})}
,{[32mnext},{WaitMK;type({F\n});im({Yes})}
,{:next},{WaitMK;type({F\n});im({Yes})}
,{[36mSELECT},{WaitMK;type({Q\n});im({Yes})}
,{\nSELECT},{WaitMK;type({Q\n});im({Yes})}
,{,?,P,0},{WaitMK;type({0\n});im({Yes})}
,{,?,0},{WaitMK;type({0\n});im({Yes})}
,{ヘルプ 表示},{WaitMK;type({0\n});im({Yes})}
,{メッセージは以上},{WaitMKB;type({0|Q\n});im({No})}
,{メッセージが見つか},{WaitMKB;type({0|Q\n});im({No})}
,{さて、どうするのかな?},{WaitMK;type({\n});im({No})}
,{検索},{;im({Yes})}
,{YY/MM/DD},{WaitMK;type(mPOINT|{\n});im({Yes})}
,{時刻指定},{WaitMK;type(mPOINT|{\n});im({Yes})}
,{日付指定},{WaitMK;type(mPOINT|{\n});im({Yes})}
,{ESCカットしますか?},
{WaitMK;type({N\n});
wait(Wtime1,,{NEWS},{WaitMK;type({\n})});
wait(Wtime2,,{0:quit},{WaitMK;type({0\n})});im({No})});
});preRetM;/*wait(1)*/
};
/* ボードを指定した場合の処理 */
%GOBOAD {[fname,boadlist,lib]
footnote(fname|{をダウンロードしています});MESREAD(boadlist);
case(lib<>{} && DORTbbs={Yes},{Yes},{DATALIB(lib)});
case(@filechk(LOG2|{DATALIB\}|NET|{DLIB.lst}),
{No},{fDATALIB})};
/* CUGボードを指定した場合の処理 */
%GOCUG {[fname,Sboadlist,Spasswd,lib]
footnote(fname|{のCUGボードNo.#}|Sboadlist|{をダウンロードします});
SMESREAD(Sboadlist,Spasswd);
case (lib<>{}||lib<>{CRLF},
{Yes}, {
case (DORTbbs={Yes},{Yes},{sDATALIB(lib)});
});
};
/* ボードの未読を全部読む */
%MESREAD{ [boadlist] var boadNo[300];boadNo:=boadlist;
case (boadNo<>{},{Yes},{
case(boadNo={all}||boadNo={ALL}||boadNo={ALL},
{No},{footnote({指定された各ボードの発言をダウンします});
loop ({case (boadNo={},{Yes},{im({No})},
{No},{WaitMK;
type({B#}|@head(boadNo,{,})|{|N\n});
BODprom1;boadNo:=@body(boadNo,{,});im({Yes});
footnote({続いてボードNo}|boadNo|{の発言のログをダウンします});
});
});
},
{Yes},{footnote({各ボードの発言を全てダウンします});
type({BN|Y\n});
wait(Wtime2,
,{使用出来ません},{}
,{NEWS},{WaitMK;type(mPOINT|{\n})}
,{[RET]},{WaitMK;type(mPOINT|{\n})}
,{カットしますか},{WaitMK;type({N\n});
wait(Wtime1,,{NEWS},{WaitMK;type(mPOINT|{\n})});}
,{カットしますか},{WaitMK;type({N\n});
wait(Wtime1,,{NEWS},{WaitMK;type(mPOINT|{\n})});});
loop ({
wait(5,{im({Yes})}
,{\nNO CARRIER},{AbortOff({\nホストが勝手に切断しちゃった~\n})}
,{もちろん読む},{WaitMK;type({\n});im({Yes})}
,{quit},{WaitMK;type({0|Q\n});im({No})}
,{?,Q},{WaitMK;type({Q\n});im({No})}
,{ボードが見つかりません},{WaitMKB;type({Q\n});im({No})}
,{探すの終わったよ},{WaitMKB;type({Q\n});im({No})}
,{検索が終了しました},{WaitMKB;type({Q\n});im({No})})
});
})});
footnote({各ボードの発言のログをダウンしました});preRetM
};
/* CUGボードの未読を読む */
%SMESREAD{ [Sboadlist,Spasswd] var boadNo[300];boadNo:=Sboadlist;
case (boadNo<>{},{Yes},{
footnote({指定された各CUGボードの発言をダウンします});
loop ({
case (boadNo={}||boadNo={all}||boadNo={ALL},{Yes},{im({No})},
{No},{
WaitMK;type({B#}|@head(boadNo,{,})|{|}|Spasswd|{\n});
WaitMK;type({B#}|@head(boadNo,{,})|{|N\n});
BODprom1;boadNo:=@body(boadNo,{,});im({Yes});
footnote({続いてボードNo}|boadNo|{の発言のログをダウンします});
});
});
});
footnote({各ボードの発言のログをダウンしました})
};
/* 自動通信処理 */
%DOrtbbs{ var DATE[24];var n[3];var b[2];
case(@filechk(LOG2|{board\title.txt}),{No},{BALL});
%rtbbs1 {case (@nth(a,1,{/}),
{NEWS検索},
{case (@filechk(LOG2|{fnews\fb}|DAY2|{.new})={No},
{Yes},{LIBnew},
{No},{footnote({本日のNEWS検索データファイル「FB}
|DAY2|{.new」は既に取得済です})
})
},
{ボード},
{GOBOAD(@nth(a,3,{/}),@nth(a,4,{/}),@nth(a,5,{/}))},
{SIGボード},
{GOCUG(@nth(a,3,{/}),@nth(a,4,{/}),@nth(a,5,{/})
,@nth(a,6,{/}))},
{CUGボード},
{GOCUG(@nth(a,3,{/}),@nth(a,4,{/}),@nth(a,5,{/})
,@nth(a,6,{/}))})
};
DATE:=@getdt; n:=0;
loop ({ n:=n+1;
%a @getline(TGK,n,1);
case (a={},{Yes},{im({No})},,
{case (@nth(a,2,{/}),
{未定},,
{毎日},rtbbs1,
{奇数},{case (@getchar(DATE,10,1),
{1},rtbbs1,{3},rtbbs1,{5},rtbbs1,
{7},rtbbs1,{9},rtbbs1)},
{偶数},{case (@getchar(DATE,10,1),
{0},rtbbs1,{2},rtbbs1,{4},rtbbs1,
{6},rtbbs1,{8},rtbbs1)},
,{case (@getchar(@nth(a,2,{/}),1,2),
@getchar(DATE,13,2),rtbbs1,
@getchar(DATE,9,2),rtbbs1,
{複}, {b:=2;
loop({
case(@nth(@nth(a,2,{/}),b,{,}),
@getchar(DATE,13,2),
{rtbbs1;im({No})},
@getchar(DATE,9,2),
{rtbbs1;im({No})},
{奇},
{case(@getchar(DATE,10,1),
{1},{rtbbs1;im({No})},
{3},{rtbbs1;im({No})},
{5},{rtbbs1;im({No})},
{7},{rtbbs1;im({No})},
{9},{rtbbs1;im({No})})},
{偶},
{case(@getchar(DATE,10,1),
{0},{rtbbs1;im({No})},
{2},{rtbbs1;im({No})},
{4},{rtbbs1;im({No})},
{6},{rtbbs1;im({No})},
{8},{rtbbs1;im({No})})},
{終わり},
{im({No})},
,{b:=b+1;im({Yes})});
});
}
)}
);
im({Yes});
});
});
};
/* 自動通信処理 */
DOWNSTART;CHeck:={Yes};
case(@filechk(LOG2|{アクセスdat\ゾクセイ.DAT})={Yes}&&ESCon={Yes}||
@filechk(LOG2|{アクセスdat\ゾクセイ.DAT})={Yes}&&
@filechk(LOG2|{アクセスdat\ゾクセイoff.DAT})={Yes}||
@filechk(LOG2|{アクセスdat\ゾクセイ.DAT})={Yes}&&ESCon={}|| @filechk(LOG2|{アクセスdat\ゾクセイoff.DAT})={Yes}&&ESCon={No},
{Yes},{},{No},{footnote({端末属性を設定中});ZOKU;footnote({})});
case(WHO,{first},{Who});
case(DLLIST,{new},{LIBnew});
case (ID={}||ID={GUEST},
{No},{
case (MAILRED||MAILDEL,{Yes},{NEWMAILL});
case (@filechk(UP2|{DENGO})||JISAR,{Yes},{DENGON})
});
case(DORTbbs={Yes}||DORTbbs={BoD},{Yes},{UREDpoint;DOrtbbs});
case(WHO,{last},{Who});case(MACTIV,{Yes},{ACT});
case(BDLIST,{Yes},{BALL});
case(DLLIST,{Yes},{fDATALIB});
case(LGLOOK={ 1},{Yes},{logDATA});
DOWNSTOP;